package com.woniuxy.yoga.admin.service;

import com.woniuxy.yoga.admin.dao.model.AdminAccount;
import com.baomidou.mybatisplus.extension.service.IService;
import com.woniuxy.yoga.admin.model.dto.AdminAccountLoginDTO;
import com.woniuxy.yoga.admin.model.dto.adminaccount.AdminAccountAddDTO;
import com.woniuxy.yoga.admin.model.dto.adminaccount.AdminByAccountIdDTO;
import com.woniuxy.yoga.admin.model.form.AdminAccountLoginForm;
import com.woniuxy.yoga.admin.model.param.AdminAccountLoginParam;
import com.woniuxy.yoga.admin.model.param.adminaccount.*;
import com.woniuxy.yoga.commons.core.model.PageInfo;

import java.net.UnknownHostException;

/**
 * <p>
 * 管理员账号表 服务类
 * </p>
 *
 * @author 韦用文,刘存益,郎腾霄
 * @since 2023年11月28日
 */
public interface AdminAccountService extends IService<AdminAccount> {

    /**
     * 管理员端账号密码登录
     * @param param
     * @return
     */
    AdminAccountLoginDTO loginAdmin(AdminAccountLoginParam param) throws UnknownHostException;
    /**
     * 平台端添加管理员
     * @param
     * @param
     * @return
     */
    AdminAccountAddDTO addAdmin(AdminAccountAddParam param);
    /**
     * 平台端删除管理员
     * @param param
     * @return
     */
    void deleteAdmin(AdminAccountDeleteParam param);
    /**
     * 分页查询管理员
     * @return
     */
    PageInfo selectAdmin(AdminAccountPageParam param);
    /**
     * 修改平台管理员密码
     * @param param
     * @return
     */
    void updateAdminPass(AdminPassUpdateParam param);
    /**
     * 禁止管理员
     * @param param
     * @return
     */
    void disableAdminAccount(AdminAccountDisableParam param);
    /**
     * 启用管理员
     * @param param
     * @return
     */
    void updAdminAccount(AdminAccountUpdParam param);
    /**
     * 根据管理员账号ID查询正常账号
     * @param accountId
     * @return
     * @throws Exception
     */
    AdminByAccountIdDTO selAdminByAccountId(Integer accountId);
    /**
     * 验证密码
     * @param param 参数
     * @return string
     * @throws Exception
     */
    void checkOldPwd(CheckAdminPassParam param);
}
